package com.mhc.haval.constant;

/**
 * 错误码，前两位表示错误类别，后三位表示具体错误类型
 * Created by HMJ on 2017/8/19.
 */
public enum MsgCodeEnum {
    /**** 通用类别错误以1开头 ****/
    // 通用全局错误码以10开头
    SUCCESS("10000", "成功"),
    EXCEPTION("10001", "未知错误"),
    PARAM_ERROR("10002", "参数错误"),
    USER_NAME_PASSWORD_ERROR("10003", "用户名或密码错误"),

    // 通用权限类错误以11开头
    NO_AUTH("11003", "没有权限"),

    // 通用用户类错误以12开头
    USER_NOT_EXISTS("12001", "用户不存在"),
    USER_EXISTS("12002", "用户已存在"),
    EMPTY_USER("12003", "获取用户为空"),
    PASSWORD_ERROR("12004", "密码验证失败"),
    PASSWORD_ALIKE("12005", "新密码与原密码相同"),
    STAFF_ID_ISNULL("12006","员工编号不能为空"),
    COMPANY_NO_ISNULL("12007","公司编号不能为空"),


    // 通用操作类错误以13开头
    INSERT_FAIL("13001", "插入数据错误"),
    DELETE_ERROR("13002", "删除数据错误"),
    UPDATE_FAIL("13003", "修改数据错误"),
    QUERY_FAIL("13004", "查询数据错误"),
    NO_DATA("13005", "无数据"),
    DATA_ERROR("13006", "数据异常"),
    DUPLICATE_ERROR("13007", "重复操作"),
    DATA_EXISTS("13008", "数据存在"),

    // 通用文件（附件）等操作错误以14开头
    UPLOAD_ERROR("14001", "文件上传失败"),

    /**** 业务类错误 ****/
    // 部门管理类错误以20开头
    DEPT_EMPTRY("20101", "部门信息为空"),
    DEPT_EXISTS("20102", "部门名称已存在"),
    CHILD_DEPT_EXISTS("20103", "存在下级部门"),
    DEPT_HAS_STAFFS("20104", "部门下包含员工"),

    // 角色及权限类错误以21开头
    FUNC_ISNULL("21001","权限信息不能为空！"),
    ROLE_ID_ISNULL("21101","角色id不能为空"),
    QUERY_ROLE_DETAIL_FAIL("21102","获取角色详情失败"),
    QUERY_ROLE_LIST_FAIL("21103","获取角色列表失败"),
    ROLE_ISNULL("21104","角色为空"),
    INSERT_ROLE_FAIL("21105","新增角色详情失败"),
    UPDATE_ROLE_FAIL("21106","更新角色详情失败"),
    DELETE_ROLE_FAIL("21107","删除角色失败"),
    DELETE_ROLE_FUNC_FAIL("21108","删除现存的角色-功能关联失败"),
    INSERT_ROLE_FUNC_FAIL("21109","新增角色-功能关联失败"),
    ROLE_FUNC_ISNULL("21110","角色-功能关联为空"),

    //审批相关类错误以22开头
    INSERT_OR_UPDATE_AUDIT_QUOTA_FAIL("22001","新增或者更新审批额度失败"),
    QUOTA_ID_ISNULL("22002","审批额度编号不能为空"),
    AUDIT_QUOTA_ISNULL("22003","审批额度不能为空")
    ;

    private String errMsg;
    private String errCode;

    private MsgCodeEnum(String errCode, String errMsg) {
        this.errMsg = errMsg;
        this.errCode = errCode;
    }

    public String getErrMsg() {
        return this.errMsg;
    }

    public String getErrCode() {
        return this.errCode;
    }
}
